//
//  TSCConstants.h
//  Tsc_IOS
//
//  注：之所以不用#define是因为不能重构
//
//  Created by Rio on 15-5-5.
//  Copyright (c) 2015年 idream. All rights reserved.
//

#import <Foundation/Foundation.h>


#pragma mark Colors
#define COLOR_TRANSPARENT [UIColor colorWithRed:0 green:0 blue:0 alpha:0.0]
#define COLOR_MT [UIColor colorWithRed:30.0f/255.0f green:144.0f/255.0f blue:255.0f/255.0f alpha:1.0f]
#define COLOR_MT_DIALOG_MODAL [UIColor colorWithRed:0 green:0 blue:0 alpha:0.6f] // 默认：0.6f
//#define COLOR_MT_DIALOG_BG [UIColor colorWithRed:233.0f/255.0f green:233.0f/255.0f blue:233.0f/255.0f alpha:1.0f] // 直接模拟器上截图，PS取色
#define COLOR_MT_DIALOG_BG [UIColor colorWithRed:1 green:1 blue:1 alpha:1.0f] // 白色
#define COLOR_MT_TOAST_BG [UIColor colorWithRed:0 green:0 blue:0 alpha:0.8f]
#define COLOR_MT_TOAST_TEXT [UIColor colorWithRed:1 green:1 blue:1 alpha:1.0f]
#define COLOR_MT_SPINNER_CELL_BG [UIColor colorWithRed:233.0f/255.0f green:233.0f/255.0f blue:233.0f/255.0f alpha:1.0f] // 同COLOR_MT_DIALOG_BG
#define COLOR_MT_BORDER_LIGHT_GRAY [UIColor colorWithRed:230.0f/250.0f green:230.0f/250.0f blue:230.0f/250.0f alpha:1.0f] // 同Storyboard中拖拽产生的textField的默认boarder颜色一致
#define COLOR_MT_PLACEHOLDER [UIColor colorWithRed:193.0f/250.0f green:193.0f/250.0f blue:193.0f                            /250.0f alpha:1.0f] // 同Storyboard中拖拽产生的textField的默认placeholder颜色一致

#pragma mark UI
#define UI_SCREEN_WIDTH    [[UIScreen mainScreen] bounds].size.width
#define UI_SCREEN_HEIGHT   [[UIScreen mainScreen] bounds].size.height
#define UI_SCREEN_PADDING  20.0f // UI元素距离屏幕左右边界的padding，在Storyboard中默认是20
#define UI_ICON_PADDING 5.0f // 各UI元素间距
#define UI_SEARCH_BAR_HEIGHT 44.0f // 默认searchBar高度为44

#pragma mark SELECTOR
#define SELECTOR_GET_VC_INPUT getVCInput: // 获得vc输入参数的@selector名称

#pragma mark 宏函数
#define arr_count(arr) ((NSInteger)(sizeof(arr) / sizeof(arr[0])))


// 拼装sql时，db操作类型
// TODO deprecated
typedef enum {
    DBOperationTypeInsert,
    DBOperationTypeUpdate,
    DBOperationTypeDelete
} DBOperationType;

// 服务器返回类型
typedef enum {
    ServerRespTypeSuccess, // 返回成功
    ServerRespTypeErrNil, // 返回空
    ServerRespTypeErrJson, // 返回字符串不是json格式
    ServerRespTypeErrCode // 返回code为0
    // 如果还有其他错误类型，在此添加...
} ServerRespType;

// UI显示约束类型
typedef enum {
    TSCConstraintTypeFillParent // 填充整个父view
} TSCConstraintType;

// icon方向
typedef enum {
    IconDirectionLeft,
    IconDirectionTop,
    IconDirectionRight,
    IconDirectionBottom
} IconDirection;

// 布局宽高类型
typedef enum {
    // 按照frame设定具体的宽高（默认）
    LayoutWHTypeNone,
    // 忽略frame，宽高同父窗口
    LayoutWHTypeMatchParent,
    // 忽略frame，宽高刚好能装下所有子元素
    LayoutWHTypeWrapContent
} LayoutWHType;

// 布局子元素对齐方式
typedef NS_ENUM(uint, LayoutGravity) {
    LayoutGravityTop = 1,
    LayoutGravityBottom = 1 << 1,
    LayoutGravityLeft = 1 << 2,
    LayoutGravityRight = 1 << 3,
    LayoutGravityCenterVertical = 1 << 4,
    LayoutGravityCenterHorizontal = 1 << 5,
    LayoutGravityCenter = 1 << 6
};

// 二维数组，最外层就是NSArray，只不过其中每一个元素还是NSArray罢了
typedef NSArray TSCArray2D;

// 文件类型
// 注：不能通过定义const int方式，因为switch-case中，case后不允许使用const int定义的常量！这一点和Java不同
typedef enum {
    FileTypeImgTemp,
    FileTypeImgFace,
    FileTypeImgPic,
    FileTypeImgChat,
    FileTypeImgCover,
    FileTypeImgSys,
    FileTypeApk
} FileType;

// 屏幕方向
typedef enum {
    ScreenOrientationUnknow, // 0：未知
    ScreenOrientationVertical, // 1：垂直（竖屏）
    ScreenOrientationHorizontal // 2：水平（横屏）
} ScreenOrientation;

// block
typedef void(^TSCBButtonClickedListener)(UIButton *); // 当某个自定义类（比如TSCMyDatePicker）需要添加“按钮点击事件”为类属性，可以使用此公共block进行声明，而不必每一个自定义类都通过typedef定义一套

#pragma mark ERR
extern NSString * const ERR_PHP_MAILER_NONE_EXIST_EMAIL_ADDRESS; // 如果邮箱地址不存在，PHP返回的错误信息


#pragma mark UD

// Activity跳转相关
extern NSInteger const UD_ACTION_EXIT_APP; // 退出APP
extern NSInteger const UD_ACTION_RE_LOGIN; // 重新登录，比如点击了“退出”按钮
extern NSString * const UD_IS_FORCE_LOGOUT; // 是否为被迫下线
// user相关与server同步
//
extern NSString * const UD_USER_ID;
extern NSString * const UD_USER_NAME;
extern NSString * const UD_USER_EMAIL;
extern NSString * const UD_USER_NAME_OR_EMAIL;
//
extern NSString * const UD_LOGIN_KEY;
//
extern NSString * const UD_USER_ROLE;
extern NSString * const UD_USER_CITY_ID;
extern NSString * const UD_GUIDE_SHOP_ID;
extern NSString * const UD_GUIDE_SHOP_NAME;
extern NSString * const UD_USER_TEL;
//
extern NSString * const UD_GUIDE_GOODS_CLASS_IDS;
extern NSString * const UD_GUIDE_IS_MANAGER;
extern NSString * const UD_USER_EMAIL_VALID;
// 其他设置项
extern NSString * const UD_IS_RECEIVE_MSG; // 是否接收消息
extern NSString * const UD_IS_NOTIFY_MSG; // 当接收到消息时，是否在通知栏进行提示
extern NSString * const UD_IS_RECEIVE_WANT_BUY_IN_COUNTRY; // 是否接受消息全国范围内的求购消息
extern NSString * const UD_LAST_TIME_MS_WHEN_CHECKING_APP_UPDATE; // 最近一次检测更新时间
extern NSString * const UD_LAST_TIME_SETTING; // 最近一次设置时间
extern NSString * const UD_HAS_APP_BEEN_OPENED_BEFORE;// 第一次开启APP后就永远设置为true。诸如封面故事显示与否就依照此位进行判断
extern NSString * const UD_HAS_CUSTOMER_OPENED_APP_BEFORE; // 用来判断是否需要在main界面显示帮助图片
extern NSString * const UD_HAS_GUIDE_OPENED_APP_BEFORE; // 用来判断是否需要在main界面显示帮助图片
// BAE相关
extern NSString * const UD_BAE_USER_ID;
extern NSString * const UD_BAE_CHANNEL_ID;
extern NSString * const UD_BAE_NOW_TAG_STR;// 当前设备所有绑定的tag集合的字符串
extern NSString * const UD_BAE_BIND_FLAG;
extern NSString * const UD_BAE_LOG_TEXT;
extern NSString * const UD_BAE_WHO_IS_LOGINING; // 登录设备随机数
extern NSString * const UD_BAE_LAST_LOGIN_TIME; // 最近一次登录时间，由server返回
extern NSString * const UD_BAE_NEED_REBIND_TAG_ON_DEVICE;// 当在该设备上重新登录时，且在BAE绑定成功后，是否继续后续流程：重新在该设备上绑定tag

#pragma mark BAE

// 以下为所有的tag前缀
extern NSString * const BAE_TAG_PREFIX_GOODS_CLASS; // 商品分类tag的前缀
// 以下为所有的自定义广播组
extern NSString * const BAE_TAG_USER_ROLE_CUSTOMER;
extern NSString * const BAE_TAG_USER_ROLE_GUIDE;
extern NSString * const BAE_TAG_USER_ALL;
// 还有各个商品分类。
// 注：商品分类的tag以“gc_”作为前缀
// 注：如果将来增加其他其他类型的tag，均已前缀区分。比如将来如果允许建立讨论组（好友圈子），那么一个圈子就是一个tag，所有的圈子tag都可以以“group_”作为前缀

// 以下为：自定义云推消息类别。以下自定义类别全部通过指定 Channel::MESSAGE_TYPE; 来发送百度的消息（而非通知）
// 注：以下定义必须严格和server一致
extern NSInteger const BAE_CUST_PUSH_MSG_TYPE_WANT_BUY_COME; // 顾客创建了求购
extern NSInteger const BAE_CUST_PUSH_MSG_TYPE_FIRST_REPLY_COME; // 导购对求购进行了首次回复
extern NSInteger const BAE_CUST_PUSH_MSG_TYPE_Q_COME; // 顾客提问了
extern NSInteger const BAE_CUST_PUSH_MSG_TYPE_A_COME; // 导购回复了
extern NSInteger const BAE_CUST_PUSH_MSG_TYPE_JOIN_NEW_SHOP; // （导购）加入店铺的申请获得新店铺店长审批
extern NSInteger const BAE_CUST_PUSH_MSG_TYPE_NOTIFY_LOGOUT; // 被迫下线

extern NSString * const BAE_META_DATA_NAME_API_KEY;// 位于AndroidManifest.xml中百度meta-data的name


#pragma mark DB

extern NSString * const DB_TABLE_NAME_CITY;
extern NSString * const DB_TABLE_NAME_GOODS_CLASS;
extern NSString * const DB_TABLE_NAME_USER;
extern NSString * const DB_TABLE_NAME_BIZ_NOTICE;
extern NSString * const DB_TABLE_NAME_RL_BIZ_NOTICE_PIC;
extern NSString * const DB_TABLE_NAME_SYS_CONFIG;
extern NSString * const DB_TABLE_NAME_RL_MAX_READED_QA;
extern NSString * const DB_TABLE_NAME_MSG;
//
extern NSString * const DB_SYS_CONFIG_KEY_DB_VERSION_GOODS_CLASS;
extern NSString * const DB_SYS_CONFIG_KEY_MAX_SELECTABLE_GOODS_CLASS;
extern NSString * const DB_SYS_CONFIG_KEY_DB_VERSION_CITY;
//
extern NSInteger const DB_YES;
extern NSInteger const DB_NO;
extern NSInteger const DB_ANY;
//
extern NSInteger const DB_DIRECTION_PREVIOUS;
extern NSInteger const DB_DIRECTION_NEXT;
//
extern NSString * const DB_USER_ROLE;
extern NSInteger const DB_USER_ROLE_CUSTOMER;
extern NSInteger const DB_USER_ROLE_GUIDE;
//
extern NSInteger const DB_BIZ_TYPE_C_WANT_BUY; // 顾客求购
extern NSInteger const DB_BIZ_TYPE_G_REPLY; // 导购针对顾客求购的第一条回复
extern NSInteger const DB_BIZ_TYPE_G_LIMIT_SELL; // 导购发布的限时卖
extern NSInteger const DB_BIZ_TYPE_G_GOODS_TEMPLATE; // 导购商品模板
extern NSInteger const DB_BIZ_IS_READ_NO;
extern NSInteger const DB_BIZ_IS_READ_YSE;
extern NSInteger const DB_BIZ_STATUS_WANT_BUY_BUYING; // 顾客求购：求购中
extern NSInteger const DB_BIZ_STATUS_WANT_BUY_DONE; // 顾客求购：交易完了
extern NSInteger const DB_BIZ_STATUS_WANT_BUY_CANCEL; // 顾客求购：不买了
extern NSInteger const DB_BIZ_STATUS_LIMIT_SELL_SELLING; // 导购限时卖：正在热卖
extern NSInteger const DB_BIZ_STATUS_LIMIT_SELL_COMING; // 导购限时卖：敬请期待
extern NSInteger const DB_BIZ_STATUS_LIMIT_SELL_FINISH; // 导购限时卖：已经结束
extern NSInteger const DB_BIZ_STATUS_LIMIT_SELL_INVALID; // 导购限时卖：失效
extern NSInteger const DB_BIZ_STATUS_UNFAVORITE; // 未收藏
extern NSInteger const DB_BIZ_STATUS_FAVORITED; // 已收藏
extern NSInteger const DB_BIZ_SCOPE_IN_CITY; // 范围：同城
extern NSInteger const DB_BIZ_SCOPE_IN_COUNTRY; // 范围：全国
//
extern NSInteger const DB_CHAT_TYPE_WORD;
extern NSInteger const DB_CHAT_TYPE_PIC;
//
extern NSInteger const DB_RATE_RANK_GOOD;// 好评
extern NSInteger const DB_RATE_RANK_MIDDLE;// 中评
extern NSInteger const DB_RATE_RANK_BAD;// 差评
//
extern NSInteger const DB_EMAIL_IS_VALID;// 邮箱有效
extern NSInteger const DB_EMAIL_IS_NOT_VALID;// 邮箱无效
//
extern NSInteger const DB_GOODS_CLASS_STATUS_NO_USE; // 废弃
extern NSInteger const DB_GOODS_CLASS_STATUS_IN_USE; // 正在使用
//
extern NSInteger const DB_CITY_STATUS_NO_USE; // 废弃
extern NSInteger const DB_CITY_STATUS_IN_USE; // 正在使用
//
extern NSInteger const DB_APP_DB_ID_DRAFT; // APP_DB中草稿的id为-100，所有未同步记录的id均小于-100，即从-101开始
extern NSInteger const DB_TABLE_MAX_ROWS;
//
extern NSInteger const DB_PATH_OR_URL_PATH; // 商品图片在APP_DB中保存的pic_url中的值，是本地path，还是远程url
extern NSInteger const DB_PATH_OR_URL_URL; // 商品图片在APP_DB中保存的pic_url中的值，是本地path，还是远程url
// 未读消息类型
extern NSInteger const DB_MSG_TYPE_CUSTOMER_WANT_BUY;// 来自顾客的求购
extern NSInteger const DB_MSG_TYPE_GUIDE_FIRST_REPLY; // 来自导购的首次回复（暂不使用）
extern NSInteger const DB_MSG_TYPE_CUSTOMER_Q_IN_FIRST_REPLY; // 来自顾客的Q--首次回复中
extern NSInteger const DB_MSG_TYPE_CUSTOMER_Q_IN_LIMIT_SELL; // 来组顾客的Q--限时卖中
extern NSInteger const DB_MSG_TYPE_GUIDE_A_IN_FIRST_REPLY; // 来自导购的A--首次回复中
extern NSInteger const DB_MSG_TYPE_GUIDE_A_IN_LIMIT_SELL; // 来自导购的A--限时卖中
//
extern NSInteger const DB_DB_THIRD_PARTY_TYPE_UNSUPPORT; // 不支持的类型
extern NSInteger const DB_DB_THIRD_PARTY_TYPE_QQ; // 第三方登陆类型QQ
extern NSInteger const DB_DB_THIRD_PARTY_TYPE_SINA_WEIBO; // 第三方登陆类型QQ


#pragma mark CONFIG

extern NSInteger const CONFIG_WELCOME_PAGE_DISPLAY_S; // 显示APP自己的欢迎界面的时间（不包括广告图片的时间）
extern NSInteger const CONFIG_WELCOME_PAGE_AD_S; // 在欢迎界面显示广告的时间
extern double const CONFIG_REPLACE_ROOT_VIEW_S; // 当在不同vc间切换且需要改变根view时，为不影响切换时的动画，需要等待一段时间再替换根view
//
extern NSInteger const CONFIG_MAX_BUY_STAR_NUM; // 顾客首界面最大购物达人数量
extern NSInteger const CONFIG_NEXT_PAGE_WAIT_S; // 顾客提交后，在当前页面停留一会再返回，给顾客有交互的感觉
extern NSInteger const CONFIG_DEFAULT_ROWS;
extern NSInteger const CONFIG_MAX_PHOTO_PICK_NUM;
extern NSInteger const CONFIG_DEFAULT_OUTLINE_WORD_NUM_10;
extern NSInteger const CONFIG_DEFAULT_OUTLINE_WORD_NUM_13;
extern NSInteger const CONFIG_DEFAULT_OUTLINE_WORD_NUM_20;
extern NSString * const CONFIG_APOSTROPHE;
extern NSInteger const CONFIG_MAX_CHAT_ID_PLUS_HOW_MANY;// 除非在用户更新lv数据之后SER端新增了10000条数据，否则这个值就是合适的
extern NSInteger const CONFIG_MAX_RWN; // 一般情况下，最大可输入字数
extern NSInteger const CONFIG_MY_DIALOG_CLOSE_S; // MyDialog在多少毫秒后自动关闭
extern CGFloat const CONFIG_ANIMATION_DURATION_S; // 动画持续时间（登录界面用户头像+注册界面显示城市）
extern CGFloat const CONFIG_ANIMATION_DURATION_QUICK_S; // 动画持续时间（登录界面用户头像+注册界面显示城市）
extern CGFloat const CONFIG_TOAST_IT_S; // toast方式弹出提示的持续时间 IT == Inteval Time
//
extern NSInteger const CONFIG_AUTO_UPDATE_INTERVAL_MS; // 检查自动更新的时间间隔（一周）


#pragma mark AEKI

extern NSString * const AEKI_PHOTO_PATH;
extern NSString * const AEKI_IMG_ID;
extern NSString * const AEKI_IMG_ID_ARR;
extern NSString * const AEKI_IMG_PATH_ARR;
extern NSString * const AEKI_IMG_PATH;
extern NSString * const AEKI_IMG_DETAIL_FILE_TYPE;
extern NSString * const AEKI_IMG_DETAIL_URL;
extern NSString * const AEKI_IMG_DETAIL_URL_ARR;
extern NSString * const AEKI_CURRENT_IMG_INDEX; // 当前显示的图片下标
extern NSString * const AEKI_BUCKET_ID;
extern NSString * const AEKI_SHOP_ID;
extern NSString * const AEKI_SHOP_NAME;
extern NSString * const AEKI_SHOP_MANAGER_ID;
extern NSString * const AEKI_MALL_ID;
extern NSString * const AEKI_MALL_NAME;
extern NSString * const AEKI_USER_ID;
extern NSString * const AEKI_USER_ROLE;
extern NSString * const AEKI_CITY_ID;
extern NSString * const AEKI_CUSTOMER_ID;
extern NSString * const AEKI_GUIDE_ID;
extern NSString * const AEKI_IS_MULTI_PICKER;
extern NSString * const AEKI_MAX_PHOTO_PICK_NUM;
extern NSString * const AEKI_BIZ_NOTICE_ID;
extern NSString * const AEKI_BIZ_NOTICE_TYPE;
extern NSString * const AEKI_UNSYNC_BIZ_ID;
extern NSString * const AEKI_WANT_BUY_ID;
extern NSString * const AEKI_FIRST_REPLY_ID;
extern NSString * const AEKI_LIMIT_SELL_ID;
extern NSString * const AEKI_BIZ_TEMPLATE_ID;
extern NSString * const AEKI_QA_ID;
extern NSString * const AEKI_BIZ_NOTICE_INFO;
extern NSString * const AEKI_TITLE;
extern NSString * const AEKI_BODY_VIEW_RESOURCE_ID;
extern NSString * const AEKI_TEXT_SIZE;
extern NSString * const AEKI_UIIMAGE; // 当需要编辑相片时，将UIImage传入TSCVCMyPhotoEditor.m
extern NSString * const AEKI_EMAIL;
extern NSString * const AEKI_STORY_VERSION;
extern NSString * const AEKI_IS_POP_STORY;


#pragma mark API

// 图片服务器访问地址
extern NSString * const URL_QINIU_PIC_SERVER_PUB_URL;
extern NSString * const URL_QINIU_PIC_SERVER_SYS_URL;
extern NSString * const URL_QQ_PIC_SERVER_URL;
extern NSString * const URL_SINA_PIC_SERVER_URL_1;
extern NSString * const URL_SINA_PIC_SERVER_URL_2;
extern NSString * const URL_GET_PIC_SERVER_TOKEN;
// 用户相关
extern NSString * const URL_USER_REGISTER;
extern NSString * const URL_USER_REGISTER2;
extern NSString * const URL_USER_LOGIN;
extern NSString * const URL_USER_LOGOUT;
extern NSString * const URL_USER_LOGIN_THIRD_PARTY;
extern NSString * const URL_USER_BIND_PUSH;
extern NSString * const URL_USER_UPDATE_LAST_LOGIN;
extern NSString * const URL_USER_UPDATE_PIC;
extern NSString * const URL_USER_UPDATE_COVER;
extern NSString * const URL_USER_UPDATE_CITY;
extern NSString * const URL_USER_FEEDBACK;
// 搜索相关
extern NSString * const URL_SEARCH_SHOP;
extern NSString * const URL_SEARCH_MALL;
// 店铺相关
extern NSString * const URL_SHOP_GET_SPACE_INFO;
extern NSString * const URL_SHOP_CREATE;
extern NSString * const URL_SHOP_UPDATE_PIC;
extern NSString * const URL_SHOP_UPDATE_LOGO;
extern NSString * const URL_SHOP_UPDATE_TEL;
extern NSString * const URL_SHOP_UPDATE_NAME;
extern NSString * const URL_SHOP_UPDATE_MALL;
extern NSString * const URL_SHOP_UPDATE_GOODS_CLASS;
// 用户设置
extern NSString * const URL_SETTING_NAME;
extern NSString * const URL_SETTING_TEL;
extern NSString * const URL_SETTING_CHANGE_PASSWD;
extern NSString * const URL_SETTING_GET_BLACKLIST;
extern NSString * const URL_SETTING_REMOVE_FROM_BLACKLIST;
extern NSString * const URL_SETTING_GET_APP_VSRSION_INFO;
extern NSString * const URL_SETTING_GUIDE_RECEIVE_MSG_IN_COUNTRY;
// 忘记密码
extern NSString * const URL_FORGET_PASSWD_SEND_RESET_PASSWD_EMAIL;
extern NSString * const URL_FORGET_PASSWD_SEND_VERIFY_EMAIL_EMAIL;
// 顾客特有
extern NSString * const URL_CUSTOMER_GET_MAIN_INFO;
extern NSString * const URL_CUSTOMER_GET_SPACE_INFO;
extern NSString * const URL_CUSTOMER_LIST_WANT_BUY;
extern NSString * const URL_CUSTOMER_LIST_GUIDE_REPLY_FOR_ONE;
extern NSString * const URL_CUSTOMER_LIST_UNRATE_FIRST_REPLY;
extern NSString * const URL_CUSTOMER_LIST_COVER_TEMPLATES;
extern NSString * const URL_CUSTOMER_LIST_RATE;
extern NSString * const URL_CUSTOMER_CREATE_WANT_BUY;
extern NSString * const URL_CUSTOMER_CREATE_RATE;
extern NSString * const URL_CUSTOMER_MARK_WANT_BUY_EXPIRE;
extern NSString * const URL_CUSTOMER_MARK_FIRST_REPLY_FAVORITE;
extern NSString * const URL_CUSTOMER_MARK_LIMIT_SELL_FAVORITE;
extern NSString * const URL_CUSTOMER_MARK_BLACKLIST;
extern NSString * const URL_CUSTOMER_FINISH_BUYING;
// 导购特有
extern NSString * const URL_GUIDE_GET_MAIN_INFO;
extern NSString * const URL_GUIDE_GET_SPACE_INFO;
extern NSString * const URL_GUIDE_GET_BIZ_TEMPLATE;
extern NSString * const URL_GUIDE_LIST_FIRST_REPLY;
extern NSString * const URL_GUIDE_LIST_BIZ_TEMPLATE;
extern NSString * const URL_GUIDE_LIST_ACHIEVEMENT;
extern NSString * const URL_GUIDE_LIST_WAIT_JOIN_GUIDE_MEMBER;
extern NSString * const URL_GUIDE_CREATE_FIRST_REPLY;
extern NSString * const URL_GUIDE_CREATE_LIMIT_SELL;
extern NSString * const URL_GUIDE_CREATE_BIZ_TEMPLATE;
extern NSString * const URL_GUIDE_DELETE_BIZ_TEMPLATE;
extern NSString * const URL_GUIDE_CHECK_STATUS;
extern NSString * const URL_GUIDE_UPDATE_SHOP;
extern NSString * const URL_GUIDE_UPDATE_BIZ_TEMPLATE;
extern NSString * const URL_GUIDE_AGREE_SHOP_MEMBER_JOIN;
extern NSString * const URL_GUIDE_MARK_LIMIT_SELL_INVALID;
extern NSString * const URL_GUIDE_CAN_SEE_ALL_LIMIT_SELL;
// 顾客/导购共有获得
extern NSString * const URL_GET_APP_INIT_DATA;
extern NSString * const URL_GET_USER_INFO_MIN;
extern NSString * const URL_GET_USER_LEVEL_INFO;
extern NSString * const URL_GET_USER_CITY_ID;
extern NSString * const URL_GET_GUIDE_INFO_MIN;
extern NSString * const URL_GET_GUIDE_GC_IDS;
extern NSString * const URL_GET_CITY_INFO_MIN;
extern NSString * const URL_GET_MALL_INFO_MIN;
extern NSString * const URL_GET_SHOP_INFO_MIN;
extern NSString * const URL_GET_WANT_BUY;
extern NSString * const URL_GET_FIRST_REPLY;
extern NSString * const URL_GET_LIMIT_SELL;
extern NSString * const URL_GET_QA;
extern NSString * const URL_GET_CHAT;
extern NSString * const URL_GET_LIMIT_SELL_LIST;
extern NSString * const URL_GET_LIMIT_SELL_LIST_1;
extern NSString * const URL_GET_LIMIT_SELL_LIST_2;
extern NSString * const URL_GET_SHOP_IN_MALL_LIST;
extern NSString * const URL_GET_QA_LIST;
extern NSString * const URL_GET_RATE_LIST;
extern NSString * const URL_GET_GUIDE_RANKING_LIST;
extern NSString * const URL_GET_BIZ_NOTICE_ALL_PICS;
// 其他
extern NSString * const URL_CREATE_CHAT;
extern NSString * const URL_CREATE_QA;
extern NSString * const URL_APPLY_MALL;
extern NSString * const URL_SINA_WEIBO_REDIRECT_URI; // Mob三方登录，新浪微博回调URI
// 以下常量，需要和Server端保持一致
// 匹配类型
extern NSInteger const URL_MATCH_TYPE_PREFIX;
extern NSInteger const URL_MATCH_TYPE_ANY;


#pragma mark 网络相关

extern NSInteger const HTTP_TIMEOUT_INTERVAL_POST;


#pragma mark 其他

extern NSInteger const O_ENCODING;


#pragma mark UI资源名称

extern NSString * const UI_STORYBOARD_NAME_MAIN; // 主Storyboard名称
extern NSString * const UI_VC_NAME_WELCOME;
extern NSString * const UI_VC_NAME_LOGIN;
extern NSString * const UI_VC_NAME_REG2_WELCOME;
extern NSString * const UI_VC_NAME_REG2_SELECT_ROLE;
extern NSString * const UI_VC_NAME_REG2_SELECT_CITY;
extern NSString * const UI_VC_NAME_REG2_GATHER_INFO_GUIDE;
extern NSString * const UI_VC_NAME_REG2_SEARCH_SHOP;
extern NSString * const UI_VC_NAME_SELECT_SHOP;
extern NSString * const UI_VC_NAME_CREATE_SHOP_GATHER_INFO;
extern NSString * const UI_VC_NAME_CREATE_SHOP_SEARCH_MALL;
extern NSString * const UI_VC_NAME_SELECT_MALL;
extern NSString * const UI_VC_NAME_APPLY_CREATE_MALL;
extern NSString * const UI_VC_NAME_STORY;
extern NSString * const UI_VC_NAME_STORY_PAGE;
extern NSString * const UI_VC_NAME_CUSTOMER_MAIN;
extern NSString * const UI_VC_NAME_GUIDE_MAIN;
extern NSString * const UI_VC_NAME_CUSTOMER_SPACE;
extern NSString * const UI_VC_NAME_GUIDE_SPACE;
extern NSString * const UI_VC_NAME_FORGET_PASSWD;
extern NSString * const UI_VC_NAME_FORGET_2_EMAIL_NOT_EXIST;
extern NSString * const UI_VC_NAME_FORGET_3_RESEND_VERI_EMAIL;
extern NSString * const UI_VC_NAME_FORGET_4_RESEND_VERI_EMAIL_SUCCESSFUL;
extern NSString * const UI_VC_NAME_FORGET_5_RESEND_VERI_EMAIL_NOT_RECEIVED;
extern NSString * const UI_VC_NAME_FORGET_6_RESET_PASSWD_VERI_EMAIL_SENDED;
extern NSString * const UI_VC_NAME_REGISTER;
extern NSString * const UI_VC_NAME_PHOTO_EDITOR;
extern NSString * const UI_VC_NAME_GUIDE_APPROVE;
extern NSString * const UI_VC_NAME_ABOUT;
extern NSString * const UI_VC_NAME_SETTING;
extern NSString * const UI_VC_NAME_FEEDBACK;
extern NSString * const UI_VC_NAME_CUSTOMER_WANT_BUY_C;
extern NSString * const UI_VC_NAME_CUSTOMER_WANT_BUY_R;
extern NSString * const UI_VC_NAME_GUIDE_BIZ_LIST;
extern NSString * const UI_VC_NAME_GUIDE_BIZ_LIST_PAGE;
extern NSString * const UI_VC_NAME_REPLY_QA;

#pragma mark 消息中心

extern NSString * const NOTIFICATION_NAME_UNREAD_MSG_PREFIX;
extern NSString * const NOTIFICATION_NAME_UNREAD_MSG_COME;
extern NSString * const NOTIFICATION_NAME_UNREAD_MSG_DELETED;
extern NSString * const NOTIFICATION_NAME_UNREAD_MSG_UPDATED;

extern NSString * const NOTIFICATION_NAME_UNSYNC_WANT_BUY_PREFIX;
extern NSString * const NOTIFICATION_NAME_UNSYNC_WANT_BUY_CREATED;
extern NSString * const NOTIFICATION_NAME_UNSYNC_WANT_BUY_DELETED;

extern NSString * const NOTIFICATION_NAME_UNSYNC_FIRST_REPLY_PREFIX;
extern NSString * const NOTIFICATION_NAME_UNSYNC_FIRST_REPLY_CREATED;
extern NSString * const NOTIFICATION_NAME_UNSYNC_FIRST_REPLY_DELETED;

extern NSString * const NOTIFICATION_NAME_UNSYNC_LIMIT_SELL_PREFIX;
extern NSString * const NOTIFICATION_NAME_UNSYNC_LIMIT_SELL_CREATED;
extern NSString * const NOTIFICATION_NAME_UNSYNC_LIMIT_SELL_DELETED;

extern NSString * const NOTIFICATION_NAME_UNSYNC_BIZ_TEMPLATE_PREFIX;
extern NSString * const NOTIFICATION_NAME_UNSYNC_BIZ_TEMPLATE_CREATED;
extern NSString * const NOTIFICATION_NAME_UNSYNC_BIZ_TEMPLATE_DELETED;

#pragma mark 密钥/密码

// ShareSDK
extern NSString * const PASSWD_SHARE_SDK_APP_KEY;
// qq空间
extern NSString * const PASSWD_QZONE_APP_KEY;
extern NSString * const PASSWD_QZONE_APP_SECRET;
// 新浪微博
extern NSString * const PASSWD_SINA_WEIBO_APP_KEY;
extern NSString * const PASSWD_SINA_WEIBO_APP_SECRET;
// Parse
extern NSString * const PASSWD_PARSE_APPLICATION_ID;
extern NSString * const PASSWD_PARSE_CLIENT_KEY;


@interface TSCConstants : NSObject
@end